﻿using UnityEngine;
using System.Collections;

public class Iddle : StateMachineBehaviour {

    private float contDegIdle = 0;

	 // OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        contDegIdle = 0;
    }

	// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
    override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        contDegIdle += 2;

        animator.gameObject.transform.rotation = Quaternion.Euler(new Vector3(
            animator.gameObject.transform.eulerAngles.x,
            animator.gameObject.transform.eulerAngles.y,
            Mathf.Sin(contDegIdle * Mathf.Deg2Rad) * 2));

        if (contDegIdle == 360) contDegIdle = 0;
    }

	// OnStateExit is called when a transition ends and the state machine finishes evaluating this state
    override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        animator.gameObject.transform.rotation = Quaternion.Euler(new Vector3(
            animator.gameObject.transform.eulerAngles.x,
            animator.gameObject.transform.eulerAngles.y,
            0 ));
    }

	// OnStateMove is called right after Animator.OnAnimatorMove(). Code that processes and affects root motion should be implemented here
	//override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
	//
	//}

	// OnStateIK is called right after Animator.OnAnimatorIK(). Code that sets up animation IK (inverse kinematics) should be implemented here.
	//override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) {
	//
	//}
}
